本文目錄一覽:
- 1、在Java中,return返回值的意義是什麼?為什麼要用返回值?
- 2、java中如何在方法運行完畢後返回main方法,而不致使程序結束
- 3、Java中怎麼確定一個流程走完後返回頁面,再調用一個介面
- 4、java try catch處理完後返回try(就是輸入錯誤重新輸入)
- 5、如何在java中獲取線程非同步執行之後的結果
在Java中,return返回值的意義是什麼?為什麼要用返回值?
其實Java提供return,是為了保持調用者與被調用者進行通信的關鍵。比如某個對象調用了一個方法,他需要根據這個方法不同的返回值進行不同的業務處理。如果沒有return機制的話,那就只能進行單一的業務處理了,不存在多種情況了。返回值的意義就是保持方法的調用者與被調用者進行通信的關鍵,這和java中異常拋出的機制是一樣的。下面跟你簡單說說return的兩種用法吧,希望對你有幫助,謝謝
return的常用作用有以下兩種
一種是返回參數所用的關鍵字,假如一個有返回值的方法執行完了之後需要返回一個參數,示例:public string functionTest(){
String a = “abc”;
return a;
}
那麼這個方法被調用之後就會返回一個值為abc的字元串,string result = functionTest();
第二種用法是,代碼執行到此處終止。
比如當代碼執行到某個地方會出現幾種結果,然後其中一種結果就不能執行後續代碼,這時候在那裡加上一個return就可以終止後面的代碼執行。
java中如何在方法運行完畢後返回main方法,而不致使程序結束
可以在最後添加一個輸入文字的位置,或者使用循環,要求用戶數據對應字元結束程序,否則繼續。
這個要根據你的實際情況決定。
Java中怎麼確定一個流程走完後返回頁面,再調用一個介面
寫一個實現userLogin介面的方法;然後把你頁面傳入的參數放入到該方法裡面,然後把你調用方法返回的結果保存後返回到頁面。
java try catch處理完後返回try(就是輸入錯誤重新輸入)
可以不用死循環的,用遞歸一樣可以實現
下面是個簡單的例子
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
Test t = new Test();
t.input();
}
public void input()
{
Scanner s = new Scanner(System.in);
System.out.println(“Please input a num”);
try{
int num = s.nextInt();
System.out.println(“You input “+num);
}
catch(Exception e)
{
System.out.println(“Invalid input,try again”);
input();
}
}
}
如何在java中獲取線程非同步執行之後的結果
java中提供了FutureV介面和實現了Future介面的FutureTaskV 類來將線程執行之後的結果返回(通過get()方法)。
1.FutureV介面
Runnable介面執行任務是不返回任何值的,Runnable的run()方法的執行結果是void,而Future介面的call方法是有返回結果的,這是Runnable跟Future的區別之一,它們的另一個不同之處就是實現了Runnable介面的任務執行是調用ExecutorService的execute(Runnable task)方法,而實現了Future介面的任務是調用ExecutorService的submit(Future task)方法。調用Future的get()方法就能直接得到任務的返回值,該方法會一直阻塞直到任務的結果出來為止,我們可以調用Future的isDone()方法來判斷該任務的結果是否準備就緒。
[java] view plain copy
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class TestFuture {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executor = Executors.newCachedThreadPool();
Future result1 = executor.submit(new Callable() {
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 0; i 10; i++) {
sum += i;
}
return sum;
}
});
Future result2 = executor.submit(new Callable() {
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 10; i 100; i++) {
sum += i;
}
return sum;
}
});
executor.shutdown();
System.out.println(result1.get() + result2.get());
}
}
2.FutureTask類
FutureTask實現了Future介面,將一個Callable實例作為參數傳給它,就能創建一個FutureTask實例,然後用ExecutorService的submit方法來執行這個實例。最後同樣是用get方法獲取線程執行後的結果。
[plain] view plain copy
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
public class TestFutureTask {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executor = Executors.newCachedThreadPool();
Callable task = new Callable() {
@Override
public String call() throws Exception {
return “結果”;
}
};
FutureTask ft = new FutureTask(task);
executor.submit(ft);
System.out.println(ft.get());
executor.shutdown();
}
}empty
原創文章,作者:SWUV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144428.html