【问题标题】:Convert class method to thread support将类方法转换为线程支持
【发布时间】:2019-02-04 13:49:24
【问题描述】:

调用另一个方法并在线程运行方法中传递字符串参数时出现此错误..错误是“将titlePartnerF的修饰符更改为最终”.. 我试图调用用于发送应该在后台运行的推送通知的方法。请帮助...在此先感谢

String titlePartnerF= titlePartner; 
final MerchantBeanPush pushBeanF = pushBean ;
// MULTHREADING CODE 
// KAMLESH DAVE : 03-FEB-2019
Thread t = new Thread(new Runnable() {
    public void run() {
        /* * Do something inside the thread*/
        PushNotifictionHelper.sendPushNotification("W",pushBeanF.getWebToken(),titlePartnerF,messageP, bodyPartner);    
    }
});
t.start();
System.out.println("we are outside from method now in background+++++++++++");

【问题讨论】:

  • final String titlePartnerF = titlePartner;?
  • 你的java版本是多少?
  • “将 titlePartnerF 的修饰符更改为 final” 您对这条消息到底有什么不明白的地方?
  • 当我将普通字符串变量传递给内部运行方法时,eclipse 向我显示此警告消息“将 titlePartnerF 的修饰符更改为 final”,其中 titlePartnerF 是字符串变量。

标签: java multithreading core


【解决方案1】:

在内部类中引用的任何变量都必须声明为 final 或实际上是 final。

String titlePartnerF= titlePartner; 必须是final String titlePartnerF= titlePartner;

请看这里的解释:Why Java inner classes require "final" outer instance variables?

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多