Java で Int Cannot Be Dereferenced エラーを解決する
この記事では、Java int cannot be dereferenced
例外の原因とその修正方法について説明します。 まず、Java における逆参照とは何かを見てみましょう。
Java での逆参照
プリミティブ変数とオブジェクト変数は、Java で使用できる 2 種類の変数です。 ただし、参照型にできるのはオブジェクト変数のみです。 int データ型は、オブジェクトではなくプリミティブです。
参照が指す値にアクセスすることは、逆参照と呼ばれます。 int はすでに値であり、他のものへの参照ではないため、逆参照することはできません。
Java での int を逆参照できない
の原因
- Java での参照は、特定のオブジェクトまたは変数を指すアドレスです。 逆参照という用語は、参照を通じてオブジェクトのプロパティを取得することを指します。
- 次の例のように、プリミティブで逆参照を実行しようとすると、
Z
はプリミティブと見なされる型である場合、Z
は逆参照できませんというエラーが表示されます。 - これの原因は、プリミティブがオブジェクトと同じではないことです。 代わりに、生の値の表現です。
Java での int を逆参照できません
エラーを解決する
int を逆参照できない
を理解し、以下の例を参考にしてそれを修正する方法を考えてみましょう:
例:
public class Main {
public static void main(String[] args) {
int Z = 8;
System.out.println(Z.equals(8));
}
}
まず、Main
クラスを作成し、int をランダムに選択された値と比較しました。 Z
は、int、byte、short などを含む Java の 8つの基本データ型の 1つです。
コードをコンパイルしようとすると、次のエラーが表示されます。
Main.java:5: error: int cannot be dereferenced
System.out.println(Z.equals(8));
^
1 error
この場合、2つの値が等しいかどうかを判断する必要があります。 この問題を解決するには、プリミティブ型に equals()
関数ではなく、表記法 ==
を使用します。
public class Main {
public static void main(String[] args) {
int Z = 8;
System.out.println(Z == 8);
}
}
コードをコンパイルすると、次の出力が出力されます。
true
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn