小编Mas*_*psi的帖子

Java - 告诉String是否被实习?

所以这里的问题很简单:有没有办法判断StringJava是否被实习?我的猜测是否定的,但我想知道是否有人知道更好.

java string

14
推荐指数
1
解决办法
1687
查看次数

使用glade/Gtkbuilder的自定义小部件

我正在用Gtk和Glade开发一个应用程序.我的印象是,为您的主窗口创建GtkWindow的子类是常见的做法,但我仍然坚持如何从GtkBuilder定义构造我的子类.有谁知道怎么样?

gtk glade gtkbuilder

10
推荐指数
1
解决办法
3560
查看次数

Scala中其他实例的受保护成员

我在学习Scala时遇到了困难.我有一个继承层次结构,基本上等同于:

class A {
    protected def myMethod() = println("myMethod() from A")
}

class B extends A {
    def invokeMyMethod(a: A) = a.myMethod()
}
Run Code Online (Sandbox Code Playgroud)

但是尝试编译这个示例,我得到错误"test.scala:7:error:方法myMethod无法在A中访问".

来自Java,我的理解是受保护的成员应该可以在派生类的任何位置访问,而且我在任何地方都看不到任何告诉我Scala中的受保护成员受实例限制的内容.有没有人对此有解释?

scala protected

9
推荐指数
1
解决办法
1418
查看次数

关联参数化类型

我有一个地图,其中键和值都是泛型类型.像这样的东西:

Map[Foo[A], Bar[A]]
Run Code Online (Sandbox Code Playgroud)

我想表达的是,A地图中每个键值对的类型可能不同,但每个键的参数化始终与它映射到的值的类型相同.所以Foo[Int]总是映射到a Bar[Int],a Foo[String]总是映射到a Bar[String],依此类推.

有谁知道表达这种方式的方法?

编辑:

这是我正在尝试做的事情的一个例子:

trait Parameter // not important what it actually does

class Example {
  val handlers: Map[_ <: Parameter, (_ <: Parameter) => _] = Map()

  def doSomething() {
    for ((value, handler) <- handlers) {
      handler(value)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是一个值总是映射到一个可以接受它作为参数的函数,但是现在编写代码时,编译器无法知道这一点.

generics scala

8
推荐指数
1
解决办法
255
查看次数

检查字符串是否为Emacs lisp中的全部大写字母?

所有.我想知道Emacs lisp是否有一个内置函数来检查字符串是否完全由大写字符组成.这就是我现在正在使用的:

(setq capital-letters (string-to-list "ABCDEFGHIJKLMNOPQRSTUVWXYZ"))

(defun chars-are-capitalized (list-of-characters)
  "Returns true if every character in a list of characters is a capital         
letter. As a special case, the empty list returns true."
  (cond
   ((equal list-of-characters nil) t)
   ((not (member (car list-of-characters) capital-letters)) nil)
   (t (chars-are-capitalized (cdr list-of-characters)))))

(defun string-is-capitalized (string)
  "Returns true if every character in a string is a capital letter. The         
empty string returns true."
  (chars-are-capitalized (string-to-list string)))
Run Code Online (Sandbox Code Playgroud)

它工作正常(虽然它依赖于我只会使用ASCII字符的假设),但我想知道我是否缺少一些我应该知道的明显功能.

lisp emacs elisp capitalization

5
推荐指数
3
解决办法
1836
查看次数

Django admin的自动作者

所有.我正在为我的django网站管理员,我遇到了一个障碍.

我有一个Entry模型和一个Related模型.该Related模型有两个外键字段:一个用于Entry模型(entry),另一个用于django的User模型(author).该Related模型被认为是一个"子模型" Entry模型,并且每个用户只能有一个RelatedEntry.

在管理员中,Related内联编辑Entry.我拥有它,管理员一次只显示一个额外Related的,它会自动author用当前用户填充该字段:

from django.contrib import models
from django.contrib.auth.models import User

class Entry(models.Model):
    pass

class Related(models.Model):
    entry = models.ForeignKey(Entry)
    author = models.ForeignKey(User)
    class Meta:
        unique_together = ('entry', 'author')




from django.contrib import admin

class RelatedInline(admin.StackedInline):
    model = Related
    exclude = ('author',)
    max_num = 1

class EntryAdmin(admin.ModelAdmin):
    inlines = (RelatedInline,)
    def save_formset(self, …
Run Code Online (Sandbox Code Playgroud)

django django-admin

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

编译时进行C++类型检查

所有.我是C++的新手,我正在用C++编写一个小型库(主要用于我自己的项目).在设计类型层次结构的过程中,我遇到了定义赋值运算符的问题.

我采用了本文最终达到的基本方法,即对于MyClass从类派生的层次结构中的每个类,Base您定义了两个赋值运算符,如下所示:

class MyClass: public Base {
public:
    MyClass& operator =(MyClass const& rhs);
    virtual MyClass& operator =(Base const& rhs);
};

// automatically gets defined, so we make it call the virtual function below
MyClass& MyClass::operator =(MyClass const& rhs);
{
    return (*this = static_cast<Base const&>(rhs));
}

MyClass& MyClass::operator =(Base const& rhs);
{
    assert(typeid(rhs) == typeid(*this)); // assigning to different types is a logical error
    MyClass const& casted_rhs = dynamic_cast<MyClass const&>(rhs);
    try {
        // allocate new …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism boost typechecking assignment-operator

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