java

Java 基本のK

static mainメソッドから非staticなメソッドは呼び出しできません

mainメソッドから同一クラス内のメソッドを呼び出したら『型 SampleMain の非 static メソッド reafile() を static 参照することはできません』というエラーがでますね。これはメッセージの通りstaticメソッドからはstaticメソッドしか呼び出せないのですが、以下サンプルのように自分でnewすれば呼び出しできます。

package sample;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SampleMain {
	public static void main(String[] args) {
		SampleMain s = new SampleMain ();
		String sqltext = null;
		sqltext =s.reafile();
		System.out.println(sqltext);
		System.exit(0);
	}
	
        /* 『public static String reafile()』と記載しなくてもこれで呼び出しできます */
	public String reafile() {
		String sqltext = null;
		try{
		    Path path = Paths.get("exec_select.sql");
		    Stream<String> lines = Files.lines(path);
		    sqltext = lines.collect(Collectors.joining(System.lineSeparator()));
		    lines.close();
		}catch(IOException e){
		    e.printStackTrace();
		}
		return sqltext;
	}
}

int型はプリミティブ型なのでnullは入りません

int型はプリミティブ型なのでnullは入りません。それに対しInteger型はクラス型(ラッパークラス)であればnullの設定は可能です。

nullと空文字(ブランク)は異なる状態です

スポンサーリンク