0

私は、引数の間にパイプを追加してそれらを組み合わせることができるAndroid APIなどのAPIをよく見てきました。*CENTER_VERTICAL|CENTER_HORIZONTAL* と言います。これはどのように行われますか?上記のようにチェーンされた関数に複数の引数を渡すことができる例を誰かに見せてもらえますか? 読み方は?

敬具

4

2 に答える 2

4

垂直バーは実際にはビットごとの OR であるため、このメソッドは引数が「フラグ」またはビット フィールドの場合にのみ機能します。

例えば

private static final int FLAG1 = 0x01;
private static final int FLAG2 = 0x02;

callFunc(FLAG1|FLAG2); // (passes 0x03)

引数が単に「任意の古い int」である場合、おそらくあなたが考えていることにはなりません。

例えば

callFunc(0x03|0x01); // passes 0x03 - so the 0x01 does nothing.
于 2012-09-18T08:07:52.343 に答える
0

これは私が欲しかったもののようなものです。答えが見つかったので、自分の質問に答えると思いました。

   public static final int a=1
   public static final int b=2;
   public static final int c=4;
   public static final int d=8;


    myfunction(a|b);

    myfunction(int x)
    {
       if((a&x)==a)
       {
          //Do whatever a stands for, and so on.
       }

      if((b&x)==b)
      { 
      }

      if((c&X)==c)
      {
      }

      if(d&x))==d)
      {
      }

    }




}
于 2012-09-18T19:09:26.243 に答える