package ex01; import App.java.util.function.Supplier; //再帰呼び出しクラス public class RecursiveCallApp { int level = 0; //再帰レベル //再帰呼び出し過程を追跡出力するメソッド <T> T trace(String fname, String[] args, Supplier<T> fun) { String s = new String(new char[level]).replace("¥0", "- ") + level + ": " + fname; System.out.println(s + " (" + String.join(",", args) + ")"); level++; T ret = fun.get(); level--; System.out.println(s + " =" + ret); return ret; } int fact(int x) { return trace("fact", new String[] { ""+x }, ( ) -> { if (x == 1) return 1; else return x * fact(x-1); }); } public static void main(String[] args) { RecursiveCallApp = new RecursiveCallApp(); System.out.println("階乗=" + App.fact(5)); } }
以下のエラーが起きます:
- java: パッケージApp.java.util.functionは存在しません
- java: シンボルを見つけられません
シンボル: クラス Supplier
場所: クラス ex01.RecursiveCallApp
3.java: 不適合な型: <any>は機能インタフェースではありません
4.java: シンボルを見つけられません
シンボル: 変数 RecursiveCallApp
場所: クラス ex01.RecursiveCallApp
5.java: シンボルを見つけられません
シンボル: 変数 App
場所: クラス ex01.RecursiveCallApp
Intellijを使用してますが、うまくコンパイルできません。誰かわかる方いましたら教えて下さい。