メソッド呼び出し変換
日本語 | 関数呼び出し変換 |
英語 | method invocation conversion |
ふりがな | めそっどよびだしへんかん |
フリガナ | メソッドヨビダシヘンカン |
メソッドの引数に値を渡した際に自動的に行われる暗黙的キャスト。
メソッドを呼び出し、その引数に値を渡した際に、自動的に行われる暗黙的キャストのこと。
基本的には代入変換と同じルールで行われる。
ワイドニング変換、アップキャスト等が行われる。
ナローイング変換、ダウンキャスト等は明示的なキャストが必要となる。
メソッドを呼び出し、その引数に値を渡した際に、自動的に行われる暗黙的キャストのこと。
基本的には代入変換と同じルールで行われる。
ワイドニング変換、アップキャスト等が行われる。
ナローイング変換、ダウンキャスト等は明示的なキャストが必要となる。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
byte b = 1;
float f = 2.0F;
// 「メソッド呼び出し変換」を行います。
// その際、代入変換と同じく
// byte→int、float→doubleの暗黙的キャストが
// 行われます。
conversion( b, f );
// 1, 2.0
// メソッド呼び出し変換は、ワイドニング変換やアップキャストのみ行います。
// ナローイング変換やダウンキャストは明示的なキャストが必要です。
long l = 100;
// conversion( l, f );
// コンパイルエラー:
// 型 Sample のメソッド conversion(int, double) は 引き数 (long, float) に適用できません。
// メソッド呼び出し変換が不可能な場合には明示的なキャストが必要です。
conversion( (int)l, f );
// 100, 2.0
}
/**
* 「メソッド呼び出し変換」用テストメソッド。
*/
private static void conversion( int i, double d )
{
System.out.println( i + ", " + d );
}
}
public class Sample
{
public static void main( String[] args )
{
byte b = 1;
float f = 2.0F;
// 「メソッド呼び出し変換」を行います。
// その際、代入変換と同じく
// byte→int、float→doubleの暗黙的キャストが
// 行われます。
conversion( b, f );
// 1, 2.0
// メソッド呼び出し変換は、ワイドニング変換やアップキャストのみ行います。
// ナローイング変換やダウンキャストは明示的なキャストが必要です。
long l = 100;
// conversion( l, f );
// コンパイルエラー:
// 型 Sample のメソッド conversion(int, double) は 引き数 (long, float) に適用できません。
// メソッド呼び出し変換が不可能な場合には明示的なキャストが必要です。
conversion( (int)l, f );
// 100, 2.0
}
/**
* 「メソッド呼び出し変換」用テストメソッド。
*/
private static void conversion( int i, double d )
{
System.out.println( i + ", " + d );
}
}
// Sample.java public class Sample { public static void main( String[] args ) { byte b = 1; float f = 2.0F; // 「メソッド呼び出し変換」を行います。 // その際、代入変換と同じく // byte→int、float→doubleの暗黙的キャストが // 行われます。 conversion( b, f ); // 1, 2.0 // メソッド呼び出し変換は、ワイドニング変換やアップキャストのみ行います。 // ナローイング変換やダウンキャストは明示的なキャストが必要です。 long l = 100; // conversion( l, f ); // コンパイルエラー: // 型 Sample のメソッド conversion(int, double) は 引き数 (long, float) に適用できません。 // メソッド呼び出し変換が不可能な場合には明示的なキャストが必要です。 conversion( (int)l, f ); // 100, 2.0 } /** * 「メソッド呼び出し変換」用テストメソッド。 */ private static void conversion( int i, double d ) { System.out.println( i + ", " + d ); } }