2016-04-22 9 views
0

InputStreamオブジェクトからWindowsファイルパスを返そうとする小さなメソッドがあります。 Eclipse Variablesウィンドウでは、 'path'フィールドに文字列I が必要ですが、アクセスして返すように見えません。 (画像をご参照ください。)InputStreamオブジェクト内のStringにアクセスする方法は?

static String getPathFromInputStream(InputStream is) { 
    Scanner s = new Scanner(is).useDelimiter("\\A"); 
    return "abc";  // Compile error from: is.in.path; 
}      // "in cannot be resolved or is not a field" 

2つの質問:私は、私は変数 ウィンドウに表示すべてにアクセスできるようにすべきか?そして2つでは、どうすればStringのパスを返すことができますか?

Eclipse Variables window

enter image description here

+0

重複した質問に対する回答に示されているように、一般的には不可能です。しかし、いくつかの制限を受け入れることを望むなら、その周りには方法があります。 –

+0

閉鎖されて以来、私はこの質問に答えることができませんが、私は自分の詳細な答えを他に追加しました:http://stackoverflow.com/a/36802489/639520 –

答えて

1

あなたの入力ストリームオブジェクトは、型のFileInputStreamであるが、入力ストリームとして表される、そのプロパティはFileInpuStreamするためのものです。

また、そのウィンドウ内のすべての変数にアクセスすることはできません。すべてのプライベート変数とパブリック変数を表示しています。パブリックメンバーとメソッドのみにアクセスできます。

0

まあ、答えは:いいえ、あなたはInputStreamからパスを取得するはずがありません。あなたが見ている変数はおそらくプライベートですが、inフィールドの場合、FilterInputStreamに基づいてフィルタリングされたストリームにフィールドが保護されていると私は信じています。

関連する問題