java.lang.ClassCastException - Cómo Depurar
2 respuestas
Joshua
hace 2 años #282633
He estado trabajando en un código de indicador personalizado que quiero incluir en la generación de mi estrategia. Por desgracia, cuando intento ejecutar el constructor (v135.868) finalmente se detiene debido a una ClassCastException. Estoy seguro de que probablemente he cometido un error tonto en mi código personalizado en alguna parte. Sin embargo, con el stacktrace que obtengo de los logs de SQ, no soy capaz de ver de dónde viene el problema. ¿Hay alguna manera de obtener una mejor visibilidad de qué bloque está causando realmente este problema? Un ejemplo de stacktrace está abajo como referencia. Gracias.
22:17:23.578 [Nonblocking computeThread - 2 - Builder_2] ERROR GPGenerationalEngine - Error
java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Double (java.lang.Integer and java.lang.Double are in module java.base of loader 'bootstrap')
at SQ.Negater.ConditionsNegater.negate(ConditionsNegater.java:56) ~[na:na]
at com.strategyquant.tradinglib.NegatersList.negate(Unknown Source) ~[SQTradingLib.jar:na]
at SQ.Negater.AndOrNegater.negate(AndOrNegater.java:40) ~[na:na]
at com.strategyquant.tradinglib.NegatersList.negate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.blocks.random.ReplacementsConfig.negateBlock(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.generate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.strategies.NodeFactory.generateStrategy(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.strategies.NodeFactory.generateRandomCandidate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.strategies.NodeFactory.generateRandomCandidate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPGenerationalEngine.generateInitialPopulation(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPGenerationalEngine.gpEvolution(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPGenerationalEngine.evolve(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPIslandJob.call(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPIslandJob.call(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.gridlib.compute.performer.MultithreadComputePerformer$1.run(Unknown Source) ~[SQGridLib2.jar:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
Joshua
hace 2 años #282692
Fui capaz de averiguar qué bloque de señal estaba causando el problema mediante la desactivación de todos ellos, y luego encenderlos uno a la vez, hasta que encontré el que lanzaba el error.

tomas262
hace 2 años #282711
Ok, gracias por informarnos
Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)