Вы можете использовать
Innerjoin function
blockquote>Вот так
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Я надеюсь эта справка:
foo= "['a':2,'b':4]"
Map mapResult=[:]
mapResult += foo.replaceAll('\\[|\\]', '').split(',').collectEntries { entry ->
def pair = entry.split(':')
[(pair.first().trim()): pair.last().trim()]
}
Думаю, вы ищете комбинацию ConfigObject и ConfigSlurper. Что-то вроде этого могло бы помочь.
def foo = new ConfigObject()
foo.bar = [ 'a' : 2, 'b' : 4 ]
// we need to serialize it
new File( 'serialized.groovy' ).withWriter{ writer ->
foo.writeTo( writer )
}
def config = new ConfigSlurper().parse(new File('serialized.groovy').toURL())
// highest level structure is a map ["bar":...], that's why we need one loop more
config.each { _,v ->
v.each {key, value -> println key + " " + value}
}
Технически нет ничего плохого в свойстве Setter-only per-se. Setter может выполнить некоторую проверку, и, возможно, от этого могут зависеть некоторые другие методы - государственные или частные.
Например:
class SomeClass {
private int _someVar;
SomeClass(int someVar) {
if(someVar > 0) _someVar = someVar;
}
public int SomeVar {
set { if(value > 0) _someVar = value; }
}
public string SomeFunction(){
return "This is an important function that uses _someVar " + _someVar;
}
}
Поэтому само заявление может быть законным и действительным. Ваше тело метода - огромный кодовый запах, хотя, но это не работа компиляторов, чтобы заботиться о.
-121--1078406- Нет в обоих случаях. В первом случае передается ссылка на сам объект, и копия не создается. Во втором случае передается указатель на конструктор объекта
, поэтому копия не создается. Таким образом, объект должен иметь конструктор (не конструктор копирования), который является чем-то вроде object (anotherClass *)
Вы можете попробовать несколько сценариев, используя evaluate , это может сделать то, что вы ищете.
def stringMap = "['a':2,'b':4]"
def map = evaluate(stringMap)
assert map.a == 2
assert map.b == 4
def stringMapNested = "['foo':'bar', baz:['alpha':'beta']]"
def map2 = evaluate(stringMapNested)
assert map2.foo == "bar"
assert map2.baz.alpha == "beta"