La grande classe contient Format-interfcase et Format-class. La classe Format contient les méthodes et l'interface a les valeurs des champs. Je pourrais avoir les champs dans le format de la classe mais le but est avec l'interface. Alors, est-ce que je crée juste des varses factices pour éliminer les erreurs, les problèmes de conception ou quelque chose d'ÉLÉMENT?Java: pourquoi la déclaration n'est pas suffisante dans l'interface?
CLÉ: Déclaration VS Initialiser
- Expliquer les termes, pourquoi vous avez à init dans l'interface.
- Quelle est la logique derrière tout cela?
- À quel type de problèmes cela conduit-il l'utilisation de l'interface?
Exemple de code ayant la init-interface problème
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);}
}
}
Pouvez-vous préciser ce que vous entendez par le terme «paresseux» dans la phrase [1]? [1] "Il me semble que vous avez peut-être imbriqué la classe Format et l'interface dans FormatBig pour que vous n'ayez à éditer et à compiler qu'un fichier, c'est paresseux, ou bien si vous le faites pour organiser votre code. , apprenez à utiliser des paquets Java. " – hhh