The Astyanax getting started guide covers an example of doing this. But, based on your question, the confusion lies in the multiple column value types (validators) specified in the column metadata, while the ColumnFamily contract seems to imply that a ColumnFamily's values are of a single type.
Underneath the scenes Astyanax is going to serialize to/from ByteBuffer anyway (using it's serializers for primitives or using the serializers you specify)... but this ColumnFamily api/contract, when taken in the context of reading/writing (as opposed to programmatic column family definition), can be misleading.
First, you'll need to initialize Astyanax (Initialization). Then something like this (modified from the Getting started guide):
ColumnFamily<String, String> CF_USER_ATTR =
new ColumnFamily<String, String>(
"user_attr2", // Column Family Name
StringSerializer.get(), // Key Serializer
StringSerializer.get()); // Column Serializer
OperationResult<ColumnList<String>> result =
ks.prepareQuery(CF_USER_ATTR)
.getKey("Key1")
.execute();
ColumnList<String> columns = result.getResult();
// Lookup columns in response by name
String attr_value = columns.getColumnByName("attr_value").getStringValue();
long timestamp = columns.getColumnByName("last_sync_timestamp").getLongValue();
String digest = columns.getColumnByName("last_sync_digest").getStringValue();
// Or, iterate through the columns
for (Column<String> c : result.getResult()) {
System.out.println(c.getName());
}
See the Astyanax Getting Started for more.