0

.css()jQueryから関数に似たメソッドを作成することは可能ですか?

jQuery での例:

$("#elemid").css("position","absolute");
$("#elemid").css({position:"absolute",left:45});

そして、これをJAVAでもほぼ同じに見せたい

JAVA での例

Rectangle rect=new Rectangle();
rect.style("position","absolute");
rect.style({position:"absolute",left:45});
4

2 に答える 2

0

JQuery関数の基本的な考え方は、別のメソッドを呼び出す可能性のある新しい(または同じ)オブジェクトを返すことです。.NETFrameworkのSystem.Linq名前空間に実装された同様のアプローチ。これは拡張メソッドを利用しますが、これらは既存のクラスに追加のメソッドを定義する方法にすぎません。例:

foreach (var i in list.Skip(4).TakeWhile(x => x > 0).Select(x => x*x))
{
    Console.WriteLine(i);
}

これにより、リストの最初の4つの要素がスキップされ、残りの要素がリストの最後に到達するか、ゼロ以下の要素になるまで繰り返されます。繰り返される各要素は2乗され、イテレータによって返され、コンソールに書き込まれます。

したがって、Javaで独自のクラスを作成する場合は、メソッドがオブジェクトを返すようにして、追加のメソッドを呼び出すようにします。StringBuilder/StringBufferクラスは、単に。を返す​​だけで、メソッドを使用してすでにそれを実行していAppendますthis

于 2012-07-09T16:04:43.920 に答える
0

自分で DSL を作成するのと同様のことができます。DSL ライブラリの例として、SQL 用の Java DSL であるJooQがあります。

ただし、いくつかの作業が必要になります:P

于 2012-07-09T16:01:37.857 に答える