小编Don*_* Li的帖子

是否可以将对象设置为"只读"方法

如果将对象引用传递给方法,是否可以将该对象设置为方法"只读"?

java reference object

20
推荐指数
3
解决办法
1万
查看次数

为什么不能将Object []转换为String []

  1. 没错

    Object[] a = new String[]{"12","34","56"};
    String[] b = (String[]) a;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 没错

    Object a = new String[]{"12","34","56"};    
    String[] b = (String[]) a;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 运行时错误:ClassCastException

    Object[] a = new Object[3];
    a[0] = "12";
    a[1] = "34";
    a[2] = "56";
    String[] b = (String[]) a;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 运行时错误:ClassCastException

    Object[] a = {"12","34","56"};    
    String[] b = (String[]) a;
    
    Run Code Online (Sandbox Code Playgroud)

当然,如果将Object[]变量String[]创建为一个变量,我们可以将变量转发回String[].

我的问题是,为什么我们不能投Object[]String[],当它被作为创建的Object[],但它的所有成员都是字符串?是因为安全原因还是没有那么有用呢?

java arrays casting

9
推荐指数
2
解决办法
1万
查看次数

为什么不能在执行时实施超载?

请参阅以下示例:

interface I {}

class A implements I {}

class B implements I {}

class Foo{
    void f(A a) {}
    void f(B b) {}
    static public void main(String[]args ) {
        I[] elements = new I[] {new A(), new B(), new B(), new A()};
        Foo o = new Foo();
        for (I element:elements)
            o.f(element);//won't compile
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么重载方法不支持向上转换?

如果在运行时实现了重载,它将提供更大的灵活性.例如,访客模式会更简单.是否存在阻止Java执行此操作的任何技术原因?

java overloading language-design

8
推荐指数
2
解决办法
348
查看次数

Java:文字字符串

class A { 

String s4 = "abc";

 static public void main(String[]args ) {

        String s1 = "abc";
        String s2 = "abc";
        String s3 = new String("abc");
        A o = new A();
        String s5 = new String("def");

        System.out.println("s1==s2 : " + (s1==s2));
        System.out.println("s1==s1.intern : " + (s1==s1.intern()));
        System.out.println("s1==s3 : " + (s1==s3));
        System.out.println("s1.intern==s3.intern : " + (s1.intern()==s3.intern()));
        System.out.println("s1==s4 : " + (s1==o.s4));
 }
} 
Run Code Online (Sandbox Code Playgroud)

输出:

s1==s2 : true
s1==s1.intern : true
s1==s3 : false
s1.intern==s3.intern : true
s1==s4 : true
Run Code Online (Sandbox Code Playgroud)

我的问题: …

java string

6
推荐指数
2
解决办法
474
查看次数

Java:为什么"this()"没有被覆盖?

见下面的例子:

class A {
   A() { this(1); }
   A(int i) { System.out.println("A" );  }
}

class B extends A {
    B() {}
    B(int i) {  System.out.println("B" );  }
}

public class Test
{
    public static void main(String[] args)   {        
       A o =  new B();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

A
Run Code Online (Sandbox Code Playgroud)

Q1:似乎java没有对"this(1)"执行后期绑定.它已在编译时决定.请确认.

Q2:Java不对任何构造函数执行后期绑定.请确认.

问题3:这是否意味着构造函数是隐式最终的?

java constructor overriding final this

4
推荐指数
1
解决办法
276
查看次数

有界类型参数有什么好处?

见下面的例子,有哪些比较有限制类型参数的利益f(U u)g(I obj)

interface I {}
class A {
    public static <U extends I> void f(U u){ }
    public static void g(I obj) { }
}
Run Code Online (Sandbox Code Playgroud)

java generics

2
推荐指数
1
解决办法
150
查看次数

jqGrid:如何复制一行?

我正在使用jqGrid PHP.添加新行(内联模式)时,如何使用与上一个选定行相同的单元格数据预填充新行?非常感谢.

php jqgrid

0
推荐指数
1
解决办法
3245
查看次数