내가AsyncTask를의 doInBackground (에 Params ... PARAMS)
라는 것은 이러한 유형은 무엇입니까 doInBackground(Params... params)
의 매개 변수 구문에 익숙 해요, 내가 그것을 어떻게 사용합니까?
내가AsyncTask를의 doInBackground (에 Params ... PARAMS)
라는 것은 이러한 유형은 무엇입니까 doInBackground(Params... params)
의 매개 변수 구문에 익숙 해요, 내가 그것을 어떻게 사용합니까?
는 말했다 .. 바르 인수가 .. 그냥 배열처럼 ... U는 여러 항목을 전달할 수 있습니다 단지 등 params[0]
처럼 액세스라고합니다.
public void makeLemonade(String[] args) {
및
public void makeLemonade(String... args) {
방법 내부의 코드가 동일 할 것이지만,이 호출되었을 때, 그들은 다르게 호출 할 것이다 : 효과적으로, 다음 두 줄의 코드는 동일합니다. 두 번째의 방법 서명 인수 (가정 된) 무한대에 0을 가질 수있는 동안
makeLemonade(new String[]{"lemon1", "lemon2", "lemon3"});
을하지만, 그들은 모두 문자열 인수 할 필요가있다 : 첫 번째는 다음과 같이 호출 할 필요가있다. 다음 통화는 모두 작동합니다 :
이makeLemonade("lemon1");
makeLemonade("lemon4", "lemon7", "lemon11", "lemon12");
makeLemonade();
// ... etc ...
둘 사이의 미묘한 차이는 가변 인자를 사용하는 경우 당신이 합법적으로) makeLemonade를 (호출 할 수 있다는 것입니다.
완벽한 설명. 감사. – dfetter88
@Travis 인수가 전달되지 않는다는 것을 어떻게 나타내십니까? 무작위 유형을 선택해야합니까? –
인수가 전달되지 않음을 나타 내기 위해 메소드 서명에는 매개 변수가 포함되지 않으므로 위의 "public void makeLemonade (String ... args)"를 볼 때 "public void makeLemonade()"를 대신 사용하십시오. . 이것은 컴파일러에게 인수가 허용되지 않는다는 것을 알려줍니다. 0 개의 인자를 가진 메소드를 호출하고 싶다면, 그것은 완벽하게 유효합니다. 그냥 그렇게하고 "makeLemonade()"를 호출하면됩니다. – Travis
그들은 그 "가 가변 인자"라고하며,
데바와 VVV으로Params... params
은 vararg를 나타냅니다. 이것은 J2SE5.0에 추가되었습니다. HTTP : // 개발자 그것은 당신이 인수의 수를 전달할 수 있습니다 또는 인수 PARAMS의 배열 [0]
감사 디팍
이 당신에게 어떻게 PARAMS 작업의 더 나은 이해를 줄 것이다 말할 수있는 것을 의미한다. android.com/reference/android/os/AsyncTask.html – dymmeh
전체 설명은 여기를 참조하십시오. http://stackoverflow.com/questions/6053602/what-arguments-are-passed-into-asynctaskarg1-arg2-arg3/6053673# 6053673 –