小编com*_*ohn的帖子

内部类的通用数组创建编译错误

我正在尝试使用泛型实现链接集合,如下所示.

public class A<E> {

  private class B {

    private B[] b;
    private E item;

    private B() {
      this.b = new B[2];
    }

  } // end inner class B

} // end class A
Run Code Online (Sandbox Code Playgroud)

A是集合,B是集合中的元素或节点,具有引用后继者/前任者和项目的数组.

不允许创建数组.我得到的错误是generic array creation.我是否正确地认为它实际创造的是一系列的A<E>.B

如果没有,导致错误的原因是什么?

如果是这样,我怎么能解决这个问题呢?

我显然省略了大量代码,如果我提供的内容不够,请告诉我.任何意见,将不胜感激.谢谢.

编辑1:我应该提到的是,参数化类型必须是在同AB.因此,通过<E>对内部类是不可能的,因为它创造E#2和叶AE#1.

java arrays generics

5
推荐指数
1
解决办法
944
查看次数

不支持macOS CBCentralManager状态

我正在尝试访问macOS(2017 iMac)上的蓝牙外围设备,但是CBCentralManager似乎从未进入该.poweredOn状态。

import Cocoa
import CoreBluetooth

class BluetoothManager: NSObject {
  var centralManager: CBCentralManager!
  override init() {
    super.init()
    self.centralManager = CBCentralManager(delegate: self, queue:nil)
    self.checkState()
  }

  func checkState() {
    print("central state: \(self.centralManager?.state.rawValue ?? -1)")
    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(2), execute: {
      self.checkState()
    })
  }
}


extension BluetoothManager: CBCentralManagerDelegate {
  func centralManagerDidUpdateState(_ central: CBCentralManager) {
    switch central.state {
    case .poweredOn:
      print("Power on")
    case .unsupported:
      print("Unsupported")
    default:break
    }
  }
}


@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

  var bluetoothManager: BluetoothManager?

  func applicationDidFinishLaunching(_ …
Run Code Online (Sandbox Code Playgroud)

macos bluetooth core-bluetooth swift

0
推荐指数
1
解决办法
1345
查看次数

标签 统计

arrays ×1

bluetooth ×1

core-bluetooth ×1

generics ×1

java ×1

macos ×1

swift ×1