タグ付けされた質問 「java」

Javaは人気のある高水準プログラミング言語です。言語自体の使用または理解に問題がある場合は、このタグを使用してください。このタグが単独で使用されることはめったになく、[spring]、[spring-boot]、[jakarta-ee]、[android]、[javafx]、[gradle]、および[maven]と組み合わせて使用​​されることがほとんどです。


2
Java 9コンパイラの--releaseフラグとは何ですか?
Java 9javacには新しいフラグがあり--releaseます: > javac --help ... --release <release> Compile for a specific VM version. Supported targets: 6, 7, 8, 9 フラグ-sourceとはどう違うの-targetですか?それは単なるショートカット-source X -target Xですか?
89 java  javac  java-9 

12
SpringBootのresourcesフォルダーからファイルを読み取ります
SpringBootとを使用していjson-schema-validatorます。フォルダjsonschema.jsonから呼び出されたファイルを読み取ろうとしていresourcesます。私はいくつかの異なる方法を試しましたが、それを機能させることができません。これは私のコードです。 ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("jsonschema.json").getFile()); JsonNode mySchema = JsonLoader.fromFile(file); これはファイルの場所です。 そして、ここで私はclassesフォルダ内のファイルを見ることができます。 しかし、コードを実行すると、次のエラーが発生します。 jsonSchemaValidator error: java.io.FileNotFoundException: /home/user/Dev/Java/Java%20Programs/SystemRoutines/target/classes/jsonschema.json (No such file or directory) コードで何が間違っているのですか?


6
SQLでStringBuilderを使用する正しい方法
私は私のプロジェクトで次のようなSQLクエリビルドを見つけました: return (new StringBuilder("select id1, " + " id2 " + " from " + " table")).toString(); これStringBuilderはその目的、つまりメモリ使用量の削減を達成していますか? コンストラクタでは '+'(文字列連結演算子)が使用されているので、疑問です。以下のコードのように文字列を使用するのと同じ量のメモリを消費しますか?sを使用しStringBuilder.append()た場合とは異なります。 return "select id1, " + " id2 " + " from " + " table"; 両方のステートメントのメモリ使用量は同じですか?どうか明らかにしてください。 前もって感謝します! 編集: ところで、それは私のコードではありません。古いプロジェクトで見つかりました。また、クエリは私の例のクエリほど小さくありません。:)


8
int値に関連付けられた列挙型の取得
以前は、LegNo列挙型を次のように定義していました。 NO_LEG, LEG_ONE, LEG_TWO を呼び出すことでreturn LegNo.values()[i];、各列挙型に関連付けられた値を取得できました。 しかし、今ではLegNoenum NO_LEGを0ではなくint -1 にしたいので、プライベートコンストラクターを使用してそのint値を初期化および設定することにしました NO_LEG(-1), LEG_ONE(1), LEG_TWO(2); private LegNo(final int leg) { legNo = leg; } 唯一のことは、この方法で実行しているため、values()メソッドがNO_LEG列挙型に対して機能しないことです。intに関連付けられた列挙型を取得するにはどうすればよいですか?case switchステートメントまたはif-elseif-elseifを使用する以外に、これを行う効率的な方法はありますか enumからのint値の取得に関連する多くのSOの質問を見ることができますが、その逆です。
88 java  enums 

9
Javaエラー:暗黙のスーパーコンストラクターがデフォルトコンストラクターに対して未定義です
私はその構造がこれに似たいくつかの単純なJavaコードを持っています: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { return "name value for ASubClass"; } } にはかなりの数のサブクラスがありBaseClass、それぞれgetName()独自の方法でメソッドを実装します(テンプレートメソッドパターン)。 これは適切に機能しますが、サブクラスに冗長コンストラクターを含めるのは好ましくありません。入力するのがより多く、維持するのが難しいです。BaseClassコンストラクタのメソッドシグネチャを変更する場合、すべてのサブクラスを変更する必要があります。 サブクラスからコンストラクターを削除すると、次のコンパイル時エラーが発生します。 Implicit super constructor …

7
Eclipseで特定のインターフェースを実装しているクラスを見つける方法は?
多くの依存関係を持つアプリケーションをJARファイルとして持っています。何らかの理由で、ライブラリの1つを逆コンパイルしてEclipseで開く必要があります。プロジェクトの特定のインターフェースについて、それを実装するクラスを見つける方法はありますか?インターフェイスがまだ逆コンパイルしていない他のライブラリに実装されていた可能性があります。この種のクラスでこれを行うことは可能ですか?

5
permgenスペースを増やす
私はtomcat 6.0で作業しています。(tomcatを開始しているときではなく)インデックスを作成しているときに、permgenスペースエラーが発生します。 どうすればそのスペースを増やすことができますか? ありがとう
88 java  tomcat  tomcat6  permgen 

16
WebViewに「利用できないWebページ」が表示されないようにする
WebViewを多用するアプリがあります。このアプリのユーザーがインターネットに接続していない場合は、「ウェブページにアクセスできません」などのテキストが表示されます。この汎用テキストをWebViewに表示しない方法はありますか?独自のエラー処理を提供したいと思います。 private final Activity activity = this; private class MyWebViewClient extends WebViewClient public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // I need to do something like this: activity.webView.wipeOutThePage(); activity.myCustomErrorHandling(); Toast.makeText(activity, description, Toast.LENGTH_LONG).show(); } } 私が見つけたWebView->クリアビューは、実際にビューをクリアしません。
88 java  android 

2
'instanceof'演算子は、インターフェイスとクラスでは動作が異なります
instanceofJava での演算子の以下の動作について知りたいのですが。 interface C {} class B {} public class A { public static void main(String args[]) { B obj = new B(); System.out.println(obj instanceof A); //Gives compiler error System.out.println(obj instanceof C); //Gives false as output } } なぜそうなのですか?そこの間には関係ありませんinterface Cとはclass B、しかし、の場合には、一方、それは偽与えobj instanceof A、それコンパイラエラーを与えますか?

16
ホットデプロイ環境としてのTomcatとEclipseの統合
私のJSPとサーブレット(可能な場合)への変更がデプロイメントを必要とせずにすぐに反映されるように、EclipseとTomcatを統合してセットアップしたいと思います。 わかりました、これはインターネット全体でたくさんの答えを持っているそれらの質問の1つですが、それらはすべて異なるように見えます。(Sysdeoプラグインを使用する、JBOssプラグインを使用する、古いEclipseを使用する、代わりにMyEclipseを使用するなど)そして、参照する決定的なリソースを1つ見つけることができませんでした。だから私の利益のために、これを設定するための最も簡単で最も推奨される手順は何ですか? これは、EclipseとTomcatが独立して実行されていることを前提としています。私は実際に、次の手順を使用して、非ホットデプロイ方式でそれらを統合することに成功しました:http : //www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/index.html Eclipseバージョンバージョン:3.4.2(Ganymede)Tomcat v6.0.20
88 java  eclipse  tomcat 

4
JavaはC ++のstd :: vectorよりも配列の方が8倍高速です。何を間違えたのですか?
サイズが変更されないいくつかの大きな配列を持つ次のJavaコードがあります。私のコンピューターでは1100ミリ秒で実行されます。 同じコードをC ++に実装して使用しましたstd::vector。 まったく同じコードを実行するC ++実装の時間は、私のコンピューターでは8800ミリ秒です。これがゆっくり実行されるように、私は何を間違えましたか? 基本的に、コードは次のことを行います。 for (int i = 0; i < numberOfCells; ++i) { h[i] = h[i] + 1; floodedCells[i] = !floodedCells[i]; floodedCellsTimeInterval[i] = !floodedCellsTimeInterval[i]; qInflow[i] = qInflow[i] + 1; } サイズが約20000のさまざまな配列を反復処理します。 次のリンクの下に両方の実装があります。 Java:https : //ideone.com/R8KqjT C ++:https : //ideone.com/Lu7RpE (ideoneでは、時間制限のため、ループを2000回ではなく400回しか実行できませんでした。ただし、ここでも3回の違いがあります)

15
Javaプロジェクトでパッケージの命名にどの戦略を使用していますか。その理由は何ですか。[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する 私はしばらく前にこれについて考えましたが、私の店が最初の実際のJava Webアプリを実行しているときに最近再浮上しました。 イントロとして、2つの主要なパッケージ命名戦略を見ます。(明確にするために、この「domain.company.project」の部分全体を指すのではなく、その下のパッケージ規則について話しています。)とにかく、私が見るパッケージの命名規則は次のとおりです。 機能:パッケージを、ビジネスドメインに基づくIDではなく、機能に応じてアーキテクチャに名前を付けます。 これの別の用語は、「レイヤー」に基づく名前付けかもしれません。したがって、*。uiパッケージ、*。domainパッケージ、および* .ormパッケージがあります。パッケージは垂直ではなく水平スライスです。 これは論理的な命名よりもはるかに一般的です。実際、これを行うプロジェクトを見たことも聞いたこともないと思います。もちろん、私はひどく頭がよくないので(NPの問題の解決策を思いついたようなものです)、誰もが自分のやり方でやるには大きな理由があるはずだと思います。一方、私はちょうど部屋に象を行方不明の人に反対していないよと、私は実際の引数聞いたことがないため、このように名前を付けるパッケージをやって。それは事実上の標準のようです。 論理:パッケージをビジネスドメインIDに従って名前を付け、その垂直方向の機能スライスに関係するすべてのクラスをそのパッケージに入れます。 前に述べたように、これについては見たり聞いたりしたことがありませんが、それは私にとっては意味のあることです。 私はシステムを水平ではなく垂直にアプローチする傾向があります。データアクセス層ではなく、注文処理システムを開発したいと考えています。明らかに、そのシステムの開発でデータアクセス層に触れる可能性は十分ありますが、重要なのは、そのように考えていないということです。これが意味することは、もちろん、変更要求を受け取ったり、いくつかの新しい機能を実装したりするときに、関連するすべてのクラスを見つけるために、たくさんのパッケージを探し回る必要がないのは素晴らしいことです。代わりに、私がしていることはXと関係があるため、Xパッケージを調べるだけです。 開発の観点から、私はあなたのパッケージがあなたのアーキテクチャーではなくあなたのビジネスドメインを文書化することは大きな勝利だと思います。ドメインはほとんど常にシステムの一部であり、システムのアーキテクチャが、特にこの時点で、実装においてほぼ平凡になっているため、理解するのが難しいように感じます。このタイプの命名規則を使用してシステムにアクセスでき、パッケージの命名から即座にシステムが注文、顧客、企業、製品などを扱うことができるという事実は、かなり便利なようです。 これにより、Javaのアクセス修飾子をより効果的に利用できるようになります。これにより、システムのレイヤーではなくサブシステムへのインターフェースをより明確に定義できます。したがって、透過的に永続化したい注文サブシステムがある場合、理論的には、DAOレイヤーに永続クラスへのパブリックインターフェイスを作成せずに、DAOクラスをそれが扱うクラスだけで。もちろん、場合あなたは、この機能を公開したかった、あなたはそれのためのインタフェースを提供したり、それを公開することができます。システム機能の垂直スライスを複数のパッケージに分割することで、これの多くを失うようです。 私が見ることができる1つの不利な点は、それがレイヤーの切り取りを少し難しくすることだと思います。パッケージを削除または名前変更してから、別のテクノロジーを使用して新しいパッケージを所定の場所にドロップする代わりに、すべてのパッケージ内のすべてのクラスを変更する必要があります。しかし、これは大した問題ではないと思います。経験不足のせいかもしれませんが、テクノロジーを入れ替える回数は、システム内で垂直方向の機能スライスにアクセスして編集する回数と比較すると、見劣りするものだと想像しなければなりません。 だから私は質問があなたに出てくると思います、あなたはあなたのパッケージにどのように名前を付けますか、そしてなぜですか?私は必ずしもここで金色のガチョウや何かに偶然出会ったとは限らないことを理解してください。私はこれらすべてにかなり新しいですが、ほとんどが学問的な経験があります。しかし、私は私の推論の穴を見つけることができないので、私が先に進むことができるように、皆さんができることを望んでいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.