2013-08-02 2 views
0

Привет, я использую талант здесь с java. застрял в ситуации.Talend и core java

String modCode <br> 
for (productsline product: ProdUtil.getProdForProfile(attrs.dhdeProd.profileId)) 
{ 
modCode = product.productCode; 
System.out.println("products are:" +modCode); 
} 

этот кусок кода печатает 3 сделанных modcodes. что ожидается. Теперь мне нужно использовать эти modcodes в if-компонентах. M не может сделать то, что говорит Локальный переменный код может быть не инициализирован в компоненте if. Как я могу это сделать ??

+0

i underaqnd его область peoblem. но не удалось это сделать – user2647113

ответ

0

Все о SCOPE.

Вам необходимо переместить объявление modCode за пределы блока if.

Read here the JLS#14 specs on Blocks and Statements

+0

my if компонент должен иметь полное состояние, такое как – user2647113

+0

modcode.equals ("some x") – user2647113

+0

оператор if, о котором говорят m, он определен в совершенно другом компоненте – user2647113

0

я предполагаю, если блок, который Вы хотите включить его в происходит либо в или после того, как цикл. Если предупреждение об инициализации в вашей IDE, вы можете явно задать

String modCode = null; 

или

String modCode = ""; 

Ваш цикл может не выполняться, если итератор не имеет записей. Вот почему вы получаете предупреждение.

+0

Спасибо за помощь. я пробовал этот путь – user2647113