当前位置: 代码迷 >> J2SE >> 关于接口的小疑点
  详细解决方案

关于接口的小疑点

热度:101   发布时间:2016-04-23 19:46:59.0
关于接口的小问题
代码如下:
package lee;
public interface Output
{
int MAX_CACHE_LINE = 50;
void out();
void getData(String msg);
default void print(String... msgs)
{
for (String msg : msgs)
{
System.out.println(msg);
}
}
default void test()
{
System.out.println("默认的test()方法");
}
static String staticTest()
{
return "接口里的类方法";
}
}
使用javac -d . Output.java编译

报错如下:
Output.java:22: 错误: 非法的类型开始
default void print(String... msgs)
^
Output.java:22: 错误: 需要=
default void print(String... msgs)
        ^
Output.java:22: 错误: 需要';'
default void print(String... msgs)
            ^
Output.java:22: 错误: 非法的类型开始
default void print(String... msgs)
                  ^
Output.java:22: 错误: 需要=
default void print(String... msgs)
                         ^
Output.java:22: 错误: 需要<标识符>
default void print(String... msgs)
                                 ^
Output.java:22: 错误: 需要';'
default void print(String... msgs)
                                  ^
Output.java:24: 错误: 非法的类型开始
for (String msg : msgs)
^
Output.java:24: 错误: 需要<标识符>
for (String msg : msgs)
   ^
Output.java:24: 错误: 需要=
for (String msg : msgs)
     ^
Output.java:24: 错误: 需要';'
for (String msg : msgs)
           ^
Output.java:24: 错误: 非法的类型开始
for (String msg : msgs)
                ^
Output.java:24: 错误: 需要=
for (String msg : msgs)
                      ^
Output.java:25: 错误: 非法的类型开始
{
^
Output.java:26: 错误: 需要=
System.out.println(msg);
      ^
Output.java:26: 错误: 需要<标识符>
System.out.println(msg);
                  ^
Output.java:26: 错误: 需要<标识符>
System.out.println(msg);
                      ^
Output.java:28: 错误: 需要class, interface或enum
}
^
Output.java:33: 错误: 需要class, interface或enum
}
^
Output.java:38: 错误: 需要class, interface或enum
}
^
20 个错误

求大神解惑.

------解决思路----------------------
Java8支持接口中定义default的方法,不过,具体允许定义几个不清楚。
------解决思路----------------------
看看接口的定义,使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。接口中的方法只有定义而没有被实现。
  相关解决方案