首页 \ 问答 \ Scala编译器构建错误JComboBox类型参数(Scala compiler build error JComboBox type parameters)

Scala编译器构建错误JComboBox类型参数(Scala compiler build error JComboBox type parameters)

所以我正在尝试编译scala编译器,我已经克服了很多问题,试图完成这个,但我目前卡在quick.lib

这非常令人困惑,因为源代码直接来自scala团队,所以我知道它应该编译。 也采用旧版本,我知道在其他地方编译并测试,但得到相同的错误。

任何有关该问题的帮助或正确方向上的一点都将不胜感激。

quick.lib:
[scalacfork] Compiling 103 files to C:\programming\scala\build\quick\classes\library
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: class JComboBox takes type parameters
[scalacfork]   override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork]                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:123: error: trait ComboBoxModel takes type parameters
[scalacfork]   def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
[scalacfork]                                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:124: error: trait ComboBoxModel takes type parameters
[scalacfork]     new AbstractListModel with ComboBoxModel {
[scalacfork]                                ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:134: error: type mismatch;
[scalacfork]  found   : AnyRef
[scalacfork]  required: Nothing
[scalacfork]       def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork]                                                       ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: too many arguments for constructor Object: ()Object
[scalacfork]   override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork]                                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:32: error: trait ListCellRenderer takes type parameters
[scalacfork]     def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r)
[scalacfork]                    ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:27: error: class JList takes type parameters
[scalacfork]   def wrap[A](c: JList) = new ListView[A] {
[scalacfork]                  ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:145: error: class JList takes type parameters
[scalacfork]   override lazy val peer: JList = new JList with SuperMixin
[scalacfork]                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:37: error: trait ListCellRenderer takes type parameters
[scalacfork]    class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] {
[scalacfork]                                             ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork]     def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork]               ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork]     def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork]                                      ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:73: error: class JList takes type parameters
[scalacfork]       def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) = 
[scalacfork]                                              ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:126: error: trait ListCellRenderer takes type parameters
[scalacfork]     override lazy val peer: ListCellRenderer = new DefaultListCellRenderer
[scalacfork]                             ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:153: error: type mismatch;
[scalacfork]  found   : AnyRef
[scalacfork]  required: Nothing
[scalacfork]     def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork]                                                     ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:195: error: too many arguments for constructor Object: ()Object
[scalacfork]     object indices extends Indices(peer.getSelectedIndices) {
[scalacfork]                    ^
[scalacfork] 15 errors found

So I'm trying to compile the scala compiler, I've overcome many problems trying to get this done but I am currently stuck at quick.lib

This is very confusing as the source is taken directly from the scala team themselves so I know it should compile. Also taken an old version I know compiles elsewhere and tested that but get the same error.

Any help on the issue or a point in the right direction would be greatly appreciated.

quick.lib:
[scalacfork] Compiling 103 files to C:\programming\scala\build\quick\classes\library
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: class JComboBox takes type parameters
[scalacfork]   override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork]                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:123: error: trait ComboBoxModel takes type parameters
[scalacfork]   def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
[scalacfork]                                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:124: error: trait ComboBoxModel takes type parameters
[scalacfork]     new AbstractListModel with ComboBoxModel {
[scalacfork]                                ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:134: error: type mismatch;
[scalacfork]  found   : AnyRef
[scalacfork]  required: Nothing
[scalacfork]       def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork]                                                       ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: too many arguments for constructor Object: ()Object
[scalacfork]   override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork]                                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:32: error: trait ListCellRenderer takes type parameters
[scalacfork]     def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r)
[scalacfork]                    ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:27: error: class JList takes type parameters
[scalacfork]   def wrap[A](c: JList) = new ListView[A] {
[scalacfork]                  ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:145: error: class JList takes type parameters
[scalacfork]   override lazy val peer: JList = new JList with SuperMixin
[scalacfork]                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:37: error: trait ListCellRenderer takes type parameters
[scalacfork]    class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] {
[scalacfork]                                             ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork]     def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork]               ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork]     def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork]                                      ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:73: error: class JList takes type parameters
[scalacfork]       def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) = 
[scalacfork]                                              ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:126: error: trait ListCellRenderer takes type parameters
[scalacfork]     override lazy val peer: ListCellRenderer = new DefaultListCellRenderer
[scalacfork]                             ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:153: error: type mismatch;
[scalacfork]  found   : AnyRef
[scalacfork]  required: Nothing
[scalacfork]     def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork]                                                     ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:195: error: too many arguments for constructor Object: ()Object
[scalacfork]     object indices extends Indices(peer.getSelectedIndices) {
[scalacfork]                    ^
[scalacfork] 15 errors found

原文:https://stackoverflow.com/questions/8068119
更新时间:2022-03-29 07:03

最满意答案

因此,对于#2,您可能最终配置了一个Google HTTP(S)LoadBalancer,可能是因为您缺少kubernetes.io/ingress.class: "nginx"注释,如下所述: https:// github。 com / kubernetes / contrib / tree / master / ingress / controllers / nginx#running-multiple-ingress-controllers

GKE拥有自己的入口控制器,您需要通过在nginx部署上粘贴该注释来覆盖它。 这篇文章对这些东西有很好的解释。

kubernetes文档NodePort的含义有很好的描述 - 基本上,服务将在群集中的每个节点上从高范围分配端口,并且节点将从该端口转发流量到您的服务。 这是在不同环境中设置负载平衡器的一种方法,但对于您的方法,没有必要。 您可以省略微服务服务的type字段,并为其分配默认类型,即ClusterIP

至于SSL,它可能是一些不同的东西。 我会确保你已经像在nginx控制器文档中描述的那样设置了Secret,例如使用tls.certtls.key字段。

我还要查看nginx控制器的日志 - 找出它运行的pod与kubectl get pods ,然后拖尾它的日志: kubectl logs nginx-pod-<some-random-hash> -f 。 这将有助于确定您是否错误配置了任何内容,例如服务是否配置了任何端点。 大多数时候我搞砸了入口的东西,这是由于服务/部署的一些非常基本的错误配置。

您还需要为指向LoadBalancer的静态IP的主机名设置DNS记录,或者使用cURL的-H 标志 ping您的服务, 就像在文档中一样 ,否则您最终可能会被路由到默认的后端404。


So, for #2, you've probably ended up provisioning a Google HTTP(S) LoadBalancer, probably because you're missing the kubernetes.io/ingress.class: "nginx" annotation as described here: https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx#running-multiple-ingress-controllers.

GKE has it's own ingress controller that you need to override by sticking that annotation on your nginx deployment. This article has a good explanation about that stuff.

The kubernetes docs have a pretty good description of what NodePort means - basically, the service will allocate a port from a high range on each Node in your cluster, and Nodes will forward traffic from that port to your service. It's one way of setting up load balancers in different environments, but for your approach it's not necessary. You can just omit the type field of your microservice's Service and it will be assigned the default type, which is ClusterIP.

As for SSL, it could be a few different things. I would make sure you've got the Secret set up just as they describe in the nginx controller docs, eg with a tls.cert and tls.key field.

I'd also check the logs of the nginx controller - find out which pod it's running as with kubectl get pods, and then tail it's logs: kubectl logs nginx-pod-<some-random-hash> -f. This will be helpful to find out if you've misconfigured anything, like if a service does not have any endpoints configured. Most of the time I've messed up the ingress stuff, it's been due to some pretty basic misconfiguration of Services/Deployments.

You'll also need to set up a DNS record for your hostname pointed at the LoadBalancer's static IP, or else ping your service with cURL's -H flag as they do in the docs, otherwise you might end up getting routed to the default back end 404.

相关问答

更多
  • 现在对此没有很好的答案。 Ingress对象现在只是HTTP,我们并不真正支持单个集群中的多个级别的入口(尽管我们想要)。 GCE的HTTP LB还没有做websockets。 服务有一个缺陷,他们失去了客户端IP(我们正在努力)。 即使我们解决了这个问题,您也无法使用GCE的L7平衡器,因为您需要额外的端口。 在我们保留源IP之前,我能想到并且已被许多用户使用的最佳解决方法是: 使用HostPorts在一些或所有节点(标签控制)上运行您自己的haproxy或nginx甚至您自己的应用程序作为Daemons ...
  • 鉴于每项服务都有自己的专用健康检查,您的配置看起来很合理。 请注意,如果您需要的资源配额超过默认资源配额且项目未处于免费试用阶段,则可以使用配额更改请求表单申请更多配额。 Your configuration looks reasonable, given that each service has its own dedicated health-check. Note that if you need more than the default resource quotas and your proj ...
  • Google HTTP / HTTPS负载均衡器不需要基于DNS的负载平衡。 它使用接收用户请求的全局IP地址。 流量在Google数据中心内部路由,传入请求以剩余容量发送到区域壁橱。 该信息记录在此链接中 。 Google HTTP/HTTPS load balancer does't require DNS-based load balancing. It uses a Global IP address which receives the user request. The traffic is r ...
  • 要连接到MongoDB的副本集,您需要在标准URI连接方案中指定所有主机。 例如,要使用以下mongod主机描述与名为test的副本集的连接: db1.example.net on port 27017 db2.example.net on port 2500 您将使用类似于以下内容的连接字符串: mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test 有关MongoDB的连接字符串URI格式的更多信息,请查看此artcile ...
  • 因此,对于#2,您可能最终配置了一个Google HTTP(S)LoadBalancer,可能是因为您缺少kubernetes.io/ingress.class: "nginx"注释,如下所述: https:// github。 com / kubernetes / contrib / tree / master / ingress / controllers / nginx#running-multiple-ingress-controllers 。 GKE拥有自己的入口控制器,您需要通过在nginx部署 ...
  • 如果你只是暴露,你得到一个短暂的IP分配给你的转发规则,它显示在: gcloud计算转发规则列表 如果您想要静态IP,可以在与集群相同的区域中分配一个: gcloud计算地址创建test-us-central --region us-central1 并暴露负载均衡器给它的ip: kubectl公开$ RC-NAME --type = LoadBalancer --load-balancer-ip = $ IP 您不能在类型= LoadBalancer的服务的另一个区域中分配IP。 含义: gcloud计算 ...
  • Google HTTP负载平衡不支持Expect 100 Continue。 要解决此问题,您必须添加以下代码行之一。 System.Net.ServicePointManager.Expect100Continue = false; rqst.ServicePoint.Expect100Continue = false; 例 HttpWebRequest rqst = (HttpWebRequest)HttpWebRequest.Create(url); rqst.Prox ...
  • Kubernetes(kube-proxy)中的群集内负载均衡器分布在所有群集节点中。 它将所有服务端点同步到节点上的iptables规则。 Kube-proxy由kubelet进行健康检查,如果它不健康30秒将重新启动(我认为这是可配置的)。 实际流量不通过kube-proxy二进制文件,因此如果kube-proxy确实卡住了,最糟糕的事情就是您对服务端点的看法变得陈旧。 有关kube-proxy的更多详细信息,请查看服务文档, 服务常见问题解答的文档和虚拟IP部分以及此kubernetes网络平台的46 ...
  • 您尚未使用SSL支持编译HAProxy。 在构建HAProxy时请添加USE_OPENSSL = 1。 请注意,它需要安装libssl-dev软件包。 巴蒂斯特 You have not compiled HAProxy with SSL support. Please add USE_OPENSSL=1 when building HAProxy. Note that it requires libssl-dev package to be installed. Baptiste
  • 您应该为这两个转发规则(http和https)使用相同的IP,如下例所示: 通过这样做,您可以拥有一条指向您的应用程序/网站的DNS A记录,用于http和https流量。 只需确保您在负载均衡器中创建/编辑转发规则之前已创建静态IP 。 You should use the same IP for both forwarding rules (http and https) like in this example: By doing so, you can have a single DNS A rec ...

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)