【发布时间】:2018-02-20 20:00:31
【问题描述】:
我正在尝试在实例初始化程序块中放置一个空的返回语句以退出,以防字符串为空但编译器说“无法从初始化程序中返回”,我在堆栈上找到了这个答案this answer溢出,但它是关于“static initializer”,也许我的情况不同,这是代码:
lsDestinatari.parallelStream().forEach(o->{
pushManagerDB.insert("log_notifiche",new HashMap<String, Object>(){{
String logContent = pushToPlayers(getPlayersFromUser(o,pushManagerDB),content,data,page);
if(logContent==null)
return;
put("content", logContent);
//TODO[...]
}});
});
【问题讨论】:
-
不,你不能,就像编译器告诉你的那样。简单的解决方法是,不要使用 return。
-
@pvg 我正在寻找不同的解决方法..
-
@MikeD3ViDTyson 除了不使用
return或不使用初始化程序之外,没有其他解决方法。这是规范的错误。那么,为什么您要寻找不同的解决方法,您认为不同的解决方法会是什么样子? -
@MikeD3ViDTyson 这很好,但它不是一个真正可以回答的具体问题,就像“我还没有找到我要找的东西”一样。我们应该告诉你什么,看看哪里的街道没有名字?
-
@MikeD3ViDTyson 那是因为那个发帖人在问一个特定的问题。你说你不喜欢 JLS,这不是一个真正的问题。规范说“你不能使用 return”,而你说“但我想要”。
标签: java initializer