2012-03-27 22 views
0

私はjavaを使用して以来、長い時間が経ちましたが、問題に遭遇しました。 ファイルからテストケースを読み込んで実行する必要があります。 問題は、別のクラス "Function.class"からメソッド "shippingCost"を呼び出す必要があることです。これはコンパイルされたコードであり、ソースではありません。別のクラスからメソッドを呼び出す方法

public static void main内の "FunctionTest.java"というクラスからこれを呼び出す方法を教えてください。

ありがとうございます!

クラスとエラーmsg。

Classes

enter image description here

+3

の方法は、非静的である場合には、そのクラスのオブジェクトを作成し、そのメソッドをこのオブジェクトから呼び出します。メソッドが静的である場合は、そのメソッドをクラスから呼び出すだけです。これが意味をなさない場合は、まず[Javaチュートリアル](http://docs.oracle.com/javase/tutorial/reallybigindex.html)を勉強してからここで質問してください。そこには豊富な情報があります。 –

+0

私は間違って入力していたと思っていましたが、投稿したことをやろうとしていました。問題は私がソースコードを持っていないので、メソッドを見つけるのにエラーが発生すると思いますか? – Meowbits

+0

おそらく問題は、そのFunctionクラスをインポートする必要があることです。 –

答えて

1
  1. 'Function.class'ファイルをプロジェクトのLibrariesフォルダに配置します。
  2. あなたFunctionTest.javaファイルに「関数」クラスの正しいパッケージをimport文を入れて:(NetBeansはコマンドで自動的にそれを行うことができるはずです。)import xx.xx.Function;
1

あなたは、オブジェクトのインスタンスへの参照を取得し、そのメソッドを呼び出す必要があります。

Function function = new Function(); 
function.myFunction(); 

あなたの命名規則には、多くの希望があります。

+0

あなたが正しいです、私はそれを正しくタイプしませんでした。更新しました。 – Meowbits

+0

これはまだ非常に悪いです。あなたは、大文字の "F"のFunction()というインスタンスメソッドを持つFunctionという名前のクラスを持っています。これは、Sun Javaのコーディング標準に違反し、コンパイラや他のプログラマを混乱させます。これは通常、「コンストラクタ」を意味します。これは絶対に間違った方向です。あなたのやり方を説明するために私の答えを変えます。 – duffymo

+0

私はもともとそれを間違って投稿しました。それはメソッド "shippingCost"、別のクラス "FunctionTest"でクラス "関数"であると考えられていた。ごめんなさい。 – Meowbits

2

メソッドを呼び出すためにソースは必要ありません。必要なのはコンパイルされたクラスだけです。メソッドにアクセスできる限り(一般に公開されている場合)、そのメソッドを呼び出すことができます。 eclipseのようなIDEは、クラスのインスタンスでどのメソッドが利用できるかを知るのに役立つことさえあります。

最も単純なケースでは、クラスのインスタンスを作成してメソッドを呼び出すだけです。

Function func = new Function(); 
func.callMethod(); 

実際にどのタイプの問題が発生しているかを知るために、さらにエラーメッセージが表示されます。

+0

更新しました。ありがとうございました。 – Meowbits

関連する問題