小编Ste*_*e M的帖子

如何在c ++中将字符串转换为char*?

我的程序中有一个错误:"无法从字符串转换为字符*".如何执行此转换?

c++ string char

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

应该重载分辨率选择私有方法吗?

考虑以下代码:

class Foo {
    public void doIt(String... strs) {
        System.out.println("this is varargs");
    }

    private void doIt(String str) {
        System.out.println("this is single");
    }
}

class Bar {
    public static void main (String[] args) {
        new Foo().doIt("");
    }
}
Run Code Online (Sandbox Code Playgroud)

使用javac版本1.6.0_29,它无法编译,说明:

VarArgsError.java:14: doIt(java.lang.String) has private access in Foo
  new Foo().doIt("");
           ^
1 error
Run Code Online (Sandbox Code Playgroud)

是的,这是愚蠢的代码,至少有两个明显的解决方法,但我很好奇.根据规范的第15.12.2节,这个编译错误似乎是javac中的错误,因为第一步应该删除非varargs doIt,因为它根据6.6.1节是不可访问的.我在查找算法中遗漏了一些其他细节,或者这显然是错误的,因为我认为它是?

java

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

标签 统计

c++ ×1

char ×1

java ×1

string ×1