所以我有一个在 Java 7 上运行良好的程序,但在 Java 8 中它无法编译并出现错误。所以,我解决了 Java 兼容性问题,我想我找到了原因(或者我找到了吗?http://bugs. java.com/bugdatabase/view_bug.do?bug_id=7144506 ) 。我想知道是否有一种简短的有效方法来复制我的原始代码片段在 Java 8 中所做的事情。这是一个表示这种情况的程序。在我的代码中,有一个 setter 方法可以完成填充数组的工作,但我无法控制它的填充方式。
import java.util.List;
import java.util.Arrays;
public class HelloWorld{
public static void main(String []args){
B someObject=new B();
List<A> a = someObject.getA() == null ? Collections.EMPTY_LIST : Arrays.asList(someObject.getA());
for ( A item : a ) {
System.out.println(item.value);
}
}
}
class A{
String value;
public A(String value){
this.value = value;
}
}
class B{
Object[] getA(){
Object arr[]= new Object[4];
arr[0]=new A("hello");
arr[1]=new A("mello");
arr[2]=new …Run Code Online (Sandbox Code Playgroud) 回答以下问题:
Linux 环境变量名称中的允许字符@aiden-bell 写道,以下模式在 BASH 中给出了所有允许的 shell 变量名称:[a-zA-Z_]+[a-zA-Z0-9_]*
我发现这是真的。事实上我可以export value _="Just for fun"。不幸的是,每当我打印它时,我都会得到__bp_preexec_invoke_exec
我浏览了这个线程,虽然它很有启发性,但它实际上并没有回答我的问题。不管 shell 可能对变量做$_什么,我可以将它用于我自己的方式吗?另外,究竟是__bp_preexec_invoke_exec什么?感谢致敬。