안드로이드 기능에 대한 기본 값을 설정하는 방법안드로이드 : 가변 인수
PHP 예 :
function HaHa($a = "Test") { print $a; }
질문 ... 안드로이드에서 작업을 수행하는 방법이다
public void someFunction(int ttt = 5)
{
// something
}
위의 해결책이 작동하지 않습니다. 어떻게 해결할 수 있습니까?
감사합니다.
안드로이드 기능에 대한 기본 값을 설정하는 방법안드로이드 : 가변 인수
PHP 예 :
function HaHa($a = "Test") { print $a; }
질문 ... 안드로이드에서 작업을 수행하는 방법이다
public void someFunction(int ttt = 5)
{
// something
}
위의 해결책이 작동하지 않습니다. 어떻게 해결할 수 있습니까?
감사합니다.
아니요, Java는 함수 매개 변수의 기본값을 지원하지 않습니다. 여기에 언어 기능을 빌려주는 것에 대한 흥미로운 글이 있습니다 : http://java.dzone.com/news/default-argument-values-java
나는 네이티브 함수가 어떻게 든 그것을 지원한다고 생각했지만 실제로 기억할 수는 없다 ...또는 예를 들어 JSONArray는 String, JSONTokener x, Collection 컬렉션 또는 빈 ... JSONArray를 사용할 수 있습니다. –
String []을 내부에 넣고 인수를 추가하거나 제거 할 수 있습니다. .. –
이 문서에서는 훌륭한 해결 방법입니다 ... 감사합니다! –
자바는 원하는대로 할 수있는 구문을 지원하지 않습니다.
아마도 된 SomeFuncion (INT)의 시작에, 당신은 입력 값을 확인하고 당신이오고, 마음에 들지 않는 부분이 있으면 다른 값을 할당 할 수 있습니다.if (ttt == 0) ttt = 5;
유의하시기 바랍니다이 질문에 나타납니다 안드로이드와 아무 관련이 없으며 부적절한 태그가 붙어 있습니다.
이 같은 과부하를 남용 할 수
int someMethod() { return someMethod(42); }
int someMethod(int arg) { .... }
아무것도 과부하 필요가 없습니다, 그냥 쓰기 :
public int getScore(int score, Integer... bonus)
{
if(bonus.length > 0)
{
return score + bonus[0];
}
else
{
return score;
}
}
나는 이것이 더 좋다고 생각한다. 'return bonus.length> 0와 같이 단순화 될 수 있습니까? 점수 + 보너스 [0] : 점수; – Sithu
당신은 함수를 오버로드 할 수 있습니다. 오버로드도 괜찮지 만 여러 인수에 대한 기본값이 필요한 경우 기본 인수를 가능한 한 많이 조합하여 여러 가지 메소드를 작성하게됩니다. 예를 들어 3 개의 인수에 기본값을 갖기를 원한다고 가정하십시오. 당신은 그래서 여기 내가 나를 위해했던 해킹, 당신도 내가 여기 알아
false
true
결과 위의 코드는 genrate 것
public static void main(String[] args)
{
defaultParameter();
defaultParameter(true);
}
public static void defaultParameter(Boolean ...gender)
{
boolean genderBoolean = false; // It the default value you want to give
if(gender.length == 1)
{
genderBoolean = gender[0]; // Overrided Value
}
System.out.println(genderBoolean);
}
사용할 수있는이
public void methodA(A arg1) { }
public void methodA(B arg2,) { }
public void methodA(C arg3) { }
public void methodA(A arg1, B arg2) { }
public void methodA(A arg1, C arg3) { }
public void methodA(B arg2, C arg3) { }
public void methodA(A arg1, B arg2, C arg3) { }
로 끝날 것 예 java-default-parameter-values
이렇게하면 (3 도트로) :
public void doSomething(boolean... arg1) {
boolean MyArg1= (arg1.length >= 1) ? arg1: false;
}
나는 자바로 할 수 있다고 생각하지 않는다. 그리고 정확하게 기억한다면, 이것이 자바 7에 있어야하는 기능이라는 것을 당연한 추측을 할 수 있습니다. 이 경우, 변수 'ttt'를 null로 검사 할 수 있으며, null 인 경우 , 값을 지정하십시오. –
관련 항목 : [Java가 기본 매개 변수 값을 지원합니까?] (http://stackoverflow.com/questions/997482/does-java-support-default-parameter-values) – eldarerathis
[Java 선택적 매개 변수] (http : /stackoverflow.com/questions/965690/java-optional-parameters) –