큰 클래스에는 Format-interfcase 및 Format-class가 포함됩니다. Format-class에는 메서드가 포함되어 있고 인터페이스에는 필드 값이 있습니다. 형식 필드에 필드를 가질 수 있지만 목표는 인터페이스입니다. 그렇다면 오류를 없애기 위해 더미 바를 만드는 것인가 아니면 디자인 문제인가 아니면 다른 무엇인가? Java : 인터페이스에서 선언이 충분하지 않은 이유는 무엇입니까?
KEY
: 선언 VS 초기화- 는 인터페이스 초기화하기 위해서 왜 조건에 의해 설명한다.
- 뒤에있는 논리는 무엇입니까?
- 인터페이스의 사용으로 인해 어떤 문제가 발생합니까?
샘플 코드 인터페이스의 초기화 - 인터페이스 문제
import java.util.*;
import java.io.*;
public class FormatBig
{
private static class Format implements Format
{
private static long getSize(File f){return f.length();}
private static long getTime(File f){return f.lastModified();}
private static boolean isFile(File f){if(f.isFile()){return true;}}
private static boolean isBinary(File f){return Match.isBinary(f);}
private static char getType(File f){return Match.getTypes(f);}
private static String getPath(File f){return getNoErrPath(f);}
//Java API: isHidden, --- SYSTEM DEPENDED: toURI, toURL
Format(File f)
{
// PUZZLE 0: would Stack<Object> be easier?
size=getSize(f);
time=getTime(f);
isfile=isFile(f);
isBinary=isBinary(f);
type=getType(f);
path=getPath(f);
//PUZZLE 1: how can simplify the assignment?
values.push(size);
values.push(time);
values.push(isfile);
values.push(isBinary);
values.push(type);
values.push(path);
}
}
public static String getNoErrPath(File f)
{
try{return f.getCanonicalPath();
}catch(Exception e){e.printStackTrace();}
}
public static final interface Format
{
//ERR: IT REQUIRES "="
public long size;
public long time;
public boolean isFile=true; //ERROR goes away if I initialise wit DUMMY
public boolean isBinary;
public char type;
public String path;
Stack<Object> values=new Stack<Object>();
}
public static void main(String[] args)
{
Format fm=new Format(new File("."));
for(Object o:values){System.out.println(o);}
}
}
[1] 문장에서 "게으른"이라는 용어의 의미를 자세히 설명 할 수 있습니까? [1] "Format 클래스를 중첩하고 FormatBig 내부를 인터페이스로 사용하여 하나의 파일 만 편집하고 컴파일해야하는 것처럼 보입니다. 게으른 것입니다. 코드를 구성하는 경우 Java 패키지 사용법을 배우십시오. " – hhh