감안할 때 생성자 :대부분 특정 생성자 서명
A(B... params)
A(String param1, B... params)
나는 A(null)
첫번째 생성자가 호출 호출 할 때. 인수 null로 두 번째 생성자를 호출하는 방법이 있습니까? 그러나 캐스팅하지 않고 null
을 String
으로 변환 하시겠습니까?
편집 : 내 문제를 설명하는 데 몇 가지 실수를했습니다. 이제는 괜찮을 것입니다.
감안할 때 생성자 :대부분 특정 생성자 서명
A(B... params)
A(String param1, B... params)
나는 A(null)
첫번째 생성자가 호출 호출 할 때. 인수 null로 두 번째 생성자를 호출하는 방법이 있습니까? 그러나 캐스팅하지 않고 null
을 String
으로 변환 하시겠습니까?
편집 : 내 문제를 설명하는 데 몇 가지 실수를했습니다. 이제는 괜찮을 것입니다.
죄송합니다. 귀하의 문제는 보이지 않습니다.
public class A
{
A(String a)
{
System.out.println("constructor(String)");
}
A(String a, B... b)
{
System.out.println("constructor(String, B...)");
}
public static void main(String[] args)
{
new A(null, null);
}
private static final class B
{
}
}
지금 편집 중이기 때문에 내 질문을 다시 읽으십시오. – ctomek
대답이 아닙니다. 여기서 대답하려고하는거야? – TheLostMind
첫 번째 질문에 실수를 한 경우에만 마이너스 1을 받고 싶지 않습니다. 둘째 : 당신은 내 안주 때문에 실수를 깨달았습니다. 셋째 : 나의 대답은 당신이 놓친 새로운 것이있다 :'new A (null, null)'은 캐스트가 필요 없다. 따라서 이것은 캐스트없이 두 번째 생성자를 사용하는 대답입니다. –
어딘가에 당신은 잘못 정확히 그래서 유일한 경우입니다
A a = new A(null);
있습니다. (B 가정하면 일반적인 구체적인 유형이 아닙니다.) 당신은
A a = new A((String)null);
A a = new A("");
그런 다음 최대한 가고 싶어하고, 바로 가기 생성자를 추가하지 마십시오 : 그것은
new A(null)
을 방지하지 않습니다
A() {
this((String) null);
}
A a = new A();
.
'new A ((String) null) '을 호출하는 문제는 무엇입니까? – kennytm
@kennytm 나는 이것이 문제라는 말은 아니며, 다른 방법이 있는지 묻고있다. – ctomek
왜 다른 방법을 찾고 있습니까? 이 방법의 문제점과 해결하고자하는 문제는 무엇입니까? (다른 방법이 없기 때문에 적어도 내가 아는 것). 그리고 왜 당신은 2 명의 생성자를 가지고 있습니까? – Tunaki