-2

間違っている場合は訂正してください。最近、Javaのワイルドカードで気づきました...

? super Tかなり意味します? accepts T

と...

? extends T一般的にはを意味し? returns Tます。

私が持っているとしましょうList<? extends Cat>。それから抜け出したい以外に、私がこれを宣言する理由はありCatますか?またはどうLitterBox<? super Cat>ですか?Cat(またはを渡すもの)を渡したくない限り、そのようなことを宣言することはCatありますか?

したがって、理論的根拠が成り立つと仮定すると...

Eclipseにシンタックスハイライトと自動置換の両方、acceptsおよびreturnswithsuperとを使用させる方法はありextendsますか?

また、「他の人に見せる前にコードを正規表現する必要がある」以外に、これは良い考えではないかもしれないという理由はありますか?

4

2 に答える 2

4

それで、Eclipseに構文のハイライトと自動置換の両方を取得して受け入れてスーパーと拡張で返す方法はありますか?

Eclipse JDTエディターを変更(つまりハック)してこれを行うことができると思いますが、それは簡単ではありません。

また、「他の人に見せる前にコードを正規表現する必要がある」以外に、これは良い考えではないかもしれないという理由はありますか?

それで十分ではありませんか?

どうですか:

  • 「標準のJavaツールチェーンがコードを理解する前に、コードを正規表現する必要があります」、または

  • 「もうJavaではない」?

または、そのことについては、Oracleがこれを言語機能にしない理由は何ですか?

オラクルにとっても、Java開発者の大多数にとっても、言語構文に不必要な見た目の変更を加えることには価値がないからです。


ほら、あなたがあなた自身のプログラミング言語を発明したいなら、遠慮なくしてください。しかし、Java言語への破壊的な変更を提案することは...率直に言って...無意味です。


私は「破壊的な変更」を求めていませんでした。そもそもなぜ彼らが同様の構文を使用しなかったのかを尋ねていました。

あなたは間違った人々に尋ねています。「彼ら」に聞いてください。

于 2012-08-18T09:49:59.663 に答える
2

もちろん、Oracleがこれを言語機能にしない理由はたくさんあります。たとえば、次のようになります。

  1. 2つの新しい予約キーワード。
  2. super意味をextendsほぼ正確に捉えています。
  3. acceptsそしてreturns、それらの位置では、何の意味もありません。あなたの一般的な理解を助けるために、そこでそれらを想像することだけが役に立つかもしれません。タイプT extends Listは何も受け入れず、何も返しません。
于 2012-08-18T11:08:57.533 に答える