質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

1回答

1802閲覧

java ()に適用できませんというエラー

keikei3

総合スコア2

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2021/10/19 11:38

編集2021/10/19 14:02

()に適用できませんというエラーの解決方法がわかりません。
教えてもらえたら幸いです。
以下エラーメッセージ
'com.test.asyncsample.MainActivity.WeatherInfoBackgroundReceiver' の 'WeatherInfoBackgroundReceiver(android.os.Handler, java.lang.String)' は '()' に適用できません
エラー部分は上から四行目です

private void receiveWeatherInfo(final String urlFull){ Looper mainLooper = Looper.getMainLooper(); Handler handler = HandlerCompat.createAsync(mainLooper); WeatherInfoBackgroundReceiver backgroundReceiver = new WeatherInfoBackgroundReceiver(); ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.submit(backgroundReceiver); } private class WeatherInfoBackgroundReceiver implements Runnable{ //ハンドラオブジェクト private final Handler _handler; //お天気情報を取得するURL private final String _urlFull; //コンストラクタ public WeatherInfoBackgroundReceiver(Handler handler , String urlFull){ _handler = handler; _urlFull = urlFull; } @WorkerThread @Override public void run(){ //http接続を行うhttpURLConnectionオブジェクトを宣言。finalyで開放するためにtry外で宣言 HttpURLConnection con = null; //http接続のレスポンスデータとして取得するinputStreamオブジェクトを宣言。同じくtry外で宣言 InputStream is = null; //天気情報サービスから取得したjson文字列。天気情報が格納されたいる String result = ""; try { //URLオブジェクトを生成 URL url = new URL(_urlFull); //URLオブジェクトからhttpURLConnectionオブジェクトを取得 con = (HttpURLConnection) url.openConnection(); //接続に使ってもいい時間を設定 con.setConnectTimeout(1000); //データ取得に使っても良い時間 con.setReadTimeout(1000); //http接続メソッドをgetに設定 con.setRequestMethod("GET"); //接続 con.connect(); //httpURLConnectionオブジェクトからレスポンスデータを取得 is = con.getInputStream(); //レスポンスうデータであるinputstreamオブジェクトを文字列に変換 result = is2String(is); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Crimson_Tide

2021/10/19 12:11

WeatherInfoBackgroundReceiverクラスの定義がないのでわかりませんが、 ぐぐった感じから推測するに コンストラクタに WeatherInfoBackgroundReceiver(android.os.Handler, java.lang.String) はあるけど、 引き数なしの WeatherInfoBackgroundReceiver() は定義されていないのでないでしょうか
y_waiwai

2021/10/19 13:57

このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
keikei3

2021/10/19 14:03

読みづらく申し訳ありませんでした。 移動させました。
guest

回答1

0

コンストラクタの定義は、

public WeatherInfoBackgroundReceiver(Handler handler , String urlFull)

となってるのに、

WeatherInfoBackgroundReceiver backgroundReceiver = new WeatherInfoBackgroundReceiver();

ってことをしてるためそのエラーが出ています
まるっきりそのままのエラーですね

投稿2021/10/19 14:10

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keikei3

2021/10/19 14:27

稚拙な質問で申し訳ありません。 どのように変更すればいいですか?
y_waiwai

2021/10/19 14:28

定義されてるように引数を記述する必要があります
hoshi-takanori

2021/10/19 19:47

コンストラクタは引数を 2 個取ることになってるので、new WeatherInfoBackgroundReceiver() の時に引数を 2 個渡す必要があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問