Thread Rating:
  • 237 Vote(s) - 2.78 Average
  • 1
  • 2
  • 3
  • 4
  • 5
なぜ String から BigDecimal にキャスト可能なのか
11-20-2013, 08:07 PM,
#1
なぜ String から BigDecimal にキャスト可能なのか
クラスの型が異なる場合、アップキャストでない限り、
asa での明示的なキャストは無効、という認識です。

しかし、Stringから、BigDecimal のキャストは成功しました。
これはなぜですか?不思議です。

Code:
{def tf = {TextField value = "123"}}
{value tf}
{CommandButton
    label = "キャスト",
    {on Action do
        def b1:#BigDecimal = tf.value asa #BigDecimal
        {popup-message b1}
    }
}
Reply
11-20-2013, 08:22 PM,
#2
RE: なぜ String から BigDecimal にキャスト可能なのか
引数がひとつだけのコンストラクタ、もしくはファクトリに、
implicit というキーワードをつけておくと、
asa でキャストされる際に、適切な型のコンストラクタ、もしくはファクトリを探しだして、
自動的に、インスタンス化してくれるようですね。

知りませんでした。

Code:
{def tf = {TextField value = "123"}}
{value tf}
{define-class public serializable Dto
  field data:String
  {constructor public {default data:String = "data"}
    set self.data = data
  }
  {factory public implicit {from-String str:String}:Dto
    def dto:Dto = {Dto}
    set dto.data = str
    {return dto}
  }
}
{CommandButton
    label = "キャスト",
    {on Action do
        def d1:#Dto = tf.value asa #Dto
        {popup-message d1}
    }
}

Reply
12-12-2013, 01:24 PM,
#3
RE: なぜ String から BigDecimal にキャスト可能なのか
Such cleaver work and reporting. Keep up the great works guys i've added you guys to my blog roll. This is a great .
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  BigDecimal -> int kay 1 4,309 03-09-2015, 11:35 AM
Last Post: umemura
  BigDecimal の丸め umemura 0 3,113 11-20-2014, 11:19 AM
Last Post: umemura
  BigDecimal.to-String で、小数点桁に0が増えてしまう umemura 1 8,285 12-19-2013, 02:03 PM
Last Post: umemura
  Clipboard.get-string のバグ? umemura 2 3,830 06-28-2013, 01:34 PM
Last Post: umemura
  RecordSort として String をパースすることはできませんでした umemura 2 3,700 11-01-2011, 04:09 PM
Last Post: c-s
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('1010')