问题是我需要做些什么来复制scala枚举的功能(对于我自己编写的其他类):
val MY_ENUM_1, MY_ENUM_2 = Value
这会创建2个Value
个实例。我怎么能这样做:
object App extends App {
class Foo {}
val foo1, foo2 = Foo
}
答案 0 :(得分:2)
您需要添加private void addcircleAroundMarker() {
GoogleMap mapView;
// circle settings
int radiusM = RADIUS OF CIRCLE;
double latitude = CENTER LATITUDE;
double longitude = CENTER LONGITUDE;
LatLng latLng = new LatLng(latitude,longitude);
// draw circle
// diameter
int d = 500;
Bitmap bm = Bitmap.createBitmap(d, d, Config.ARGB_8888);
Canvas c = new Canvas(bm);
Paint p = new Paint();
p.setColor(getResources().getColor(R.color.green));
c.drawCircle(d/2, d/2, d/2, p);
BitmapDescriptor bmD = BitmapDescriptorFactory.fromBitmap(bm);
mapView.addGroundOverlay(new GroundOverlayOptions().
image(bmD).
position(latLng,radiusM*2,radiusM*2).
transparency(0.4f));
}
关键字:
new
scala> class Foo
defined class Foo
scala> val foo1, foo2 = new Foo
foo1: Foo = Foo@470e2030
foo2: Foo = Foo@3fb4f649
有效,因为它实际上从val MY_ENUM_1, MY_ENUM_2 = Value
调用方法Value
,即:
Enumeration
最终会调用
/** Creates a fresh value, part of this enumeration. */
protected final def Value: Value = Value(nextId)
反过来会返回protected final def Value(i: Int, name: String): Value = new Val(i, name)
(并且还会增加Val
)。
您可以在Enumeration的源代码中看到整个过程(从第128行开始,nextId
类定义为第209行)。