6

私は Android 開発に Eclipse を使用しており、既にコードの書式設定スタイルを設定していますが、Eclipse で書式設定する方法を理解できなかった匿名メソッドがまだあります。これは、Eclipse が匿名メソッドをフォーマットする方法です。

// The BroadcastReceiver that listens for discovered devices and
    // changes the title when discovery is finished
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
                                                  @Override
                                                  public void onReceive(Context context, Intent intent) {
                                                      String action = intent.getAction();
                                                      Utils.Log.i("BLUETOOTH: " + action);
                                                      if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                                                          // Get the
                                                          // BluetoothDevice
                                                          // object from the
                                                          // Intent
                                                          BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                                                          // If it's already
                                                          // paired, skip it,
                                                          // because it's been
                                                          // listed already
                                                          if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
                                                              if (mNewDevicesArrayAdapter.getCount() == 0) {
                                                                  mNewDevicesArrayAdapter.add(device);
                                                              }
                                                              btDevicesUpdateList.add(device);
                                                          }
                                                      }
                                                      else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
                                                          mNewDevicesArrayAdapter.setItems(btDevicesUpdateList);
                                                          mNewDevicesArrayAdapter.notifyDataSetChanged();
                                                          btDevicesUpdateList.clear();
                                                          mBtAdapter.startDiscovery();
                                                      }
                                                      else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
                                                          if (mBtAdapter.getState() == BluetoothAdapter.STATE_ON) {
                                                              switchToView(viewBluetoothOn);
                                                              firstTimeDiscover();
                                                          }
                                                          else if (mBtAdapter.getState() == BluetoothAdapter.STATE_OFF) {
                                                              switchToView(viewBluetoothOff);
                                                          }
                                                      }
                                                  }
                                              };

見る?その非常にくだらない。匿名メソッド宣言を書式設定して、左側に留まり、=等号の下に入らないようにするための正しい設定は何ですか?

4

3 に答える 3

3

この不適切な書式設定の原因は「フィールドを列に揃える」設定だと思います。これをオフにすると、等号ではなく行頭からクラス/インターフェイスの実装をインデントする必要があります。

デフォルトの動作を修正するか、クラス/インターフェースの実装に別の設定を追加するために、Eclipseでバグを開きました。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=385901

于 2012-07-29T09:19:11.547 に答える
2

この問題の回避策は、コーディング スタイルを少し変更することです。以下をカット アンド ペーストして、フォーマッタを実行します。スタイル #2 は安っぽく見えません。

// **Style #1** - Formatter handles poorly
JDialog jDialog1 = new JDialog(new JFrame()) {
    public void setBackground(final Color c) {
       super.setBackground(c);
    }
};

// **Style #2** - Formatter handles well.
JDialog jDialog2;
{
    jDialog2 = new JDialog(new JFrame()) {
        public void setBackground(final Color c) {
            super.setBackground(c);
        }
    };
}
于 2012-10-06T20:25:40.113 に答える
0

ある種のカスタムフォーマッタ設定があるようです。プロジェクト プロパティ / Java コード スタイル / フォーマッター / プロジェクト固有の設定を有効にする に移動し、「Java 規則」組み込みフォーマッター プロファイルを選択します。

于 2012-06-22T17:49:21.827 に答える